class LibreriasController < ApplicationController
  verify  :method => :post, 
          :only => [ :insertar, :actualizar ],
          :redirect_to => { :action => :listar }
          
  before_filter :validar_admin, :only => [ :nueva, :insertar, :editar, :actualizar, :borrar ]
  before_filter :cargar_libreria, :only => [ :ficha, :editar, :actualizar, :borrar ]

    
  def listar
    @librerias = Libreria.find(:all, :order => 'ciudad ASC, titulo ASC' )
  end
  
  def nueva
    @libreria = Libreria.new
  end
  
  def insertar
    @libreria = Libreria.new( params[:libreria] )
    
    begin
      if @libreria.save
        flash[:info] = 'Libreria creada muy bien.'
        redirect_to librerias_ficha_url( @libreria.titulo_sanitizado )
      else
        flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
        render :action => 'nueva'
      end
    rescue
      flash[:error] = "Algún error se ha producido, vuelve a intentarlo: #{$!}"
      render :action => 'nueva'
    end  
    
  end
  
  def editar
  end
    
  def actualizar
    @libreria.update_attributes( params[:libreria] )
    
    if @libreria.save
      flash[:info] = 'Libreria actualizada muy bien.'
      redirect_to librerias_ficha_url( @libreria.titulo_sanitizado )
    else
      flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
      render :action => 'editar'
    end
  end
  
  def borrar    
    if @libreria.destroy
      flash[:info] = 'Libreria borrada muy bien.'
    else
      flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
    end
    
    redirect_to librerias_url
  end
  
  def ficha
  end
  
  def ver_mapa
    @librerias = Libreria.find(:all, :conditions => "ciudad = '#{params[ :ciudad ]}'" )
    @ciudad = params[ :ciudad ]
  end
  
  protected
    def menu_activado
      @menu_activado = 'librerias'
    end
    
    def cargar_libreria
      @libreria = Libreria.find_by_titulo_sanitizado( params[:titulo_sanitizado] )

      if not @libreria
        render_404
      end
    end
end